The present invention relates to local networks, and more specifically to a peer-to-peer distributed local network.
Modern technology has advanced to enable the possibility of creating home networks using xe2x80x9csmartxe2x80x9d appliances. Conventionally, these smart appliance networks in the home are coupled together with a server or other computer-like xe2x80x9cmasterxe2x80x9d controller over a local area network (xe2x80x9cLANxe2x80x9d). The appliances are internally coupled to sophisticated microprocessors which in turn are connected via the LAN to the even more powerful processor in the server or master controller, on which network-related command, control and other functions of the appliances depend. Thus, the smart appliance and the master controller on the LAN function in xe2x80x9cMaster-Slavexe2x80x9d or the well-known xe2x80x9cClient-Serverxe2x80x9d fashion. In these networks, the master device is responsible for controlling the operations of the slave-xe2x80x9csmart appliancesxe2x80x9d, and manages all complex operations and program, such that the appliances themselves do little more than act on very specific commands issued by the master device (e.g., to turn themselves on or off).
In order to maximize the value of these home networks, they can further be connected to a wide area network (xe2x80x9cWANxe2x80x9d, such as the Internet) through the local server and via a xe2x80x9cgatewayxe2x80x9d to allow remote control and monitoring of the smart appliance functionality. This gateway can be combined with the local server or exist as a separate device, such as a modem, which the server routes LAN messages through to the WAN. A remote user that wishes to remotely control or monitor the functionality of a smart appliance will connect through the gateway to the home server, which receives, queues, and parses commands to and from the individual appliances.
Although this conventional configuration achieves many goals of a home network, it is inefficient and expensive to manufacture and install for the mass market. An expensive local server, set-top box, or other powerful computer-like device must first be present in the home to enable the smart appliance network, and must be maintained to manage the process. Moreover, the home must accommodate the server, which is typically bulky, often noisy, and generates heat. Additionally, the cost of the gateway must be added the server in order to allow remote control and monitoring. Within the home, each appliance requires its own expensive processor, and is a xe2x80x9cclientxe2x80x9d or xe2x80x9cslavexe2x80x9d to the network. Moreover, the communication methods used within the local area network are also bulky and inefficient, typically modeled on Internet messaging standards that were not designed for appliance networking and thus requiring high cost, high bandwidth communication techniques which drives up the cost of the smart appliances. Thus, although this configuration is technically feasible, it is not an attractive solution for those wishing to install a smart appliance network in the home.
Therefore, a local network is needed that can connect appliances and devices in a network, enable the appliances and devices to be remotely controllable, and enhance the functionality of the appliances and devices without requiring the installation of a server, master controller or expensive processors and communication techniques.
An autonomous local area distributed network connects devices whose purpose is not primarily general computing into a network in a peer-to-peer configuration that requires only low cost, low bandwidth communication techniques and only an occasional connection to a remote server. A node circuit is coupled to or embedded within a device to enable network connectivity in the device. Each node is coupled together through a communications facility over a bus. A remote server connects to the network via a modem and initializes the nodes, and thereafter the nodes act in a peer-to-peer, autonomous manner. The network is designed to provide true peer-to-peer computing and connectivity, thus allowing the nodes to share resources and distribute programming tasks across the different nodes. The remote server initializes the network into an optimal configuration for the particular network responsive to the type and number of nodes and devices on the network. The network communications are optimized for smart appliance applications. Such optimization and peer-to-peer architecture allow the nodes to employ a low-cost, relatively simple design, thus reducing the costs of creating the smart appliance network. Moreover, the peer-to-peer configuration also eliminates the requirement of maintaining a server or master controller at the network site, and therefore eliminates the cost of the server as well. Thus, in one embodiment, devices such as refrigerators, televisions, light switches, light fixtures, garage door openers, stereos, and other primarily non-general computing devices may be configured as nodes on a network. In accordance with the present invention, each node interoperates with the other nodes to allow each node to be accessed by a user locally or remotely and to be configured or operated. For example, a user at work may access a website and verify that all lights are turned off in the user""s home, and if lights are still on, the user may turn the lights off. Again, in contrast to conventional systems, this functionality is accomplished without requiring expensive processors or a local server to be installed in the home.
In one embodiment, a node operating system (NOS) provides the peer-to-peer networking capabilities. In this embodiment, each node interoperates within a computing system referred to as a domain. Each node within a domain can communicate at will with other nodes, execute programs distributed across nodes in the domain, execute programs in parallel, share resources across the domain, and serve as proxies for other nodes within the domain, without requiring any interaction or mediation with a master device. In one embodiment, each NOS operates internally as a shared tasking application, but is designed to hand off tasks and threads to itself and other nodes. In this embodiment, a domain-wide addressing scheme enables the physical layer connecting nodes to appear transparent to each node. Thus, instructions that are transmitted over a bus and executed by a remote node are treated as if the instruction had been executed by the transmitting node. This gives each node complete access to the memory space created by the shared nodes.
In a further embodiment, operational programs, referred to as xe2x80x9csequences,xe2x80x9d may be distributed across nodes in a network to enable the maximum utilization of available node resources. Sequences operate to provide instructions for specific nodes"" features or instructions to execute other sequences. A sequence may be a program that enables the event of switching on a light in a home to trigger switching on other lights in the home. For example, if a user has several lights that lead from the bedroom to the kitchen, the user may desire a sequence that turns on all lights that lead to the kitchen on whenever the user turns on a particular bedroom light switch. Although this sequence requires the execution of operations by several different nodes (i.e., each of the lights along the selected path), the sequence itself may be executed by other nodes in the network (e.g., by a television node or a thermostat node), the execution resulting in commands being sent to the specific light switch nodes to turn on. The distribution of the execution of the sequence allows the network to distribute processing requirements more evenly across the network.
By contrast, in a conventional non peer-to-peer system, nodes can only execute the programs designed for operation by that node. Thus, each node must possess sufficient processing power to execute entire programs, and such programs can only be executed by the specific nodes for which they are written. Moreover, if a particular node is used more often than other nodes (a garage door opener vs. a rarely-used porch light), that node may be required to have more processing power to accommodate the execution of its tasks but the porch light node may have too much processing power to execute its infrequent tasks. However, the same high-performance processor is typically in all nodes, or, alternatively, each home must be custom-designed. Either option results in an expensive home network solution due to either the use of expensive components, or the loss of economies of scale and the need for very specific program development. Thus, by using the peer-to-peer configuration with distributed programming of the present invention, the nodes of a network provide full functionality without a prohibitive cost to the user.